﻿#ifndef Calculator_H
#define Calculator_H
#include "INCLUDE/Stack.h"
#include <QMainWindow>

namespace Ui {
class Calculator;
}

class Calculator : public QMainWindow
{
    Q_OBJECT

public:
    explicit Calculator(QWidget *parent = 0);
    ~Calculator();

private slots:
    void inputNumber();                       //输入数字的槽函数
    void inputOperator();                     //输入运算符的槽函数
    void inputSpeOperator();                  //输入需要特殊运算符的槽函数
    void Help();                              //帮助页面的槽函数

private:
    Ui::Calculator *ui;
    Stack* m_Stack;                           //初始化一个指向Stack类的一个对象
    bool m_IsCount;                           //检查表达式是否计算完成
    void setNumber(QString str);              //获取输入数字函数
    void setOperator(QString str);            //获取输入运算符函数
    void setSub(QString str);                 //按钮输入减号函数
    void Back();                              //退格函数
    void allClear();                          //清空函数
    void Equal();                             //等于号函数
    void keyPressEvent(QKeyEvent *event);     //点击键盘Enter触发等于按钮
    void connectBtn();
    void regExp();
};

#endif // Calculator_H
